python随机生成列表

您所在的位置:网站首页 python 随机生成列表 python随机生成列表

python随机生成列表

2023-12-18 16:21| 来源: 网络整理| 查看: 265

在Python编程中,列表是一种非常重要的数据类型。它可以存储任意数量的元素,并且可以进行添加、删除、修改和查找等操作。而随机生成列表则是在实际开发中非常常见的需求。本文将从多个角度分析如何使用Python随机生成列表。

1. random库的使用

python随机生成列表

Python中的random库提供了丰富的随机数生成函数,我们可以使用其中的函数来生成随机列表。常用的函数如下:

(1)random.random():生成0-1之间的浮点数。

(2)random.randint(a, b):生成a到b之间的整数。

(3)random.choice(seq):从序列seq中随机选择一个元素。

(4)random.sample(seq, k):从序列seq中随机选择k个元素,返回一个列表。

下面是一个随机生成整数列表的例子:

import random

def random_list(n, a, b):

return [random.randint(a, b) for i in range(n)]

n = 10

a, b = 1, 100

lst = random_list(n, a, b)

print(lst)

这段代码将生成一个长度为10,元素值范围在1-100之间的随机整数列表。

2. numpy库的使用

numpy库是Python中用于科学计算的一个重要库,它提供了高效的多维数组操作和数学函数。numpy库中也提供了随机数生成函数。常用的函数如下:

(1)numpy.random.rand(d0, d1, …, dn):生成d0 x d1 x … x dn维的0-1之间的浮点数数组。

(2)numpy.random.randint(low[, high, size, dtype]):生成指定形状的整数数组,元素值在low和high之间。

(3)numpy.random.choice(a, size=None, replace=True, p=None):从序列a中随机选择元素,返回一个数组。

下面是一个随机生成浮点数列表的例子:

import numpy as np

def random_list(n, a, b):

return np.random.uniform(a, b, n)

n = 10

a, b = 0, 1

lst = random_list(n, a, b)

print(lst)

这段代码将生成一个长度为10,元素值范围在0-1之间的随机浮点数列表。

3. random模块中的shuffle函数

random模块中还提供了一个shuffle函数,可以将列表中的元素随机打乱。下面是一个例子:

import random

lst = [1, 2, 3, 4, 5]

random.shuffle(lst)

print(lst)

这段代码将打印出一个随机排列的列表。

4. 列表推导式

在Python中,可以使用列表推导式来生成列表。列表推导式的形式为[expression for item in iterable],其中expression为表达式,item为可迭代对象中的元素。我们可以结合随机数生成函数来使用列表推导式生成随机列表。下面是一个例子:

import random

n = 10

a, b = 1, 100

lst = [random.randint(a, b) for i in range(n)]

print(lst)

这段代码将生成一个长度为10,元素值范围在1-100之间的随机整数列表。

5. 性能比较

我们可以使用timeit模块来比较不同方法生成随机列表的性能。下面是一个比较随机生成10万个元素的列表的代码:

import timeit

import random

import numpy as np

def random_list1(n, a, b):

return [random.randint(a, b) for i in range(n)]

def random_list2(n, a, b):

return np.random.uniform(a, b, n)

t1 = timeit.timeit('random_list1(100000, 1, 100)', globals=globals(), number=100)

t2 = timeit.timeit('random_list2(100000, 1, 100)', globals=globals(), number=100)

print('random_list1 time:', t1)

print('random_list2 time:', t2)

可以看出,numpy库生成随机列表的速度较快。

微信扫码,学习更方便 现在报名赠千元剪辑大礼包 Python Python应用 Python开发 Python


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3